#ifndef WXSFONTEDITORDLG_H
#define WXSFONTEDITORDLG_H

#include "wxsfontproperty.h"

#include <wx/sizer.h>
#include <wx/stattext.h>
#include <wx/textctrl.h>
#include <wx/checkbox.h>
#include <wx/listbox.h>
#include <wx/spinctrl.h>
#include <wx/radiobut.h>
#include <wx/choice.h>
#include <wx/button.h>
#include "scrollingdialog.h"
#include <wx/combobox.h>

class wxsFontEditorDlg: public wxScrollingDialog {
  public:

    wxsFontEditorDlg( wxWindow* parent, wxsFontData& Data, wxWindowID id = -1 );
    virtual ~wxsFontEditorDlg();

    //(*Identifiers(wxsFontEditorDlg)
    static const long ID_CHOICE1;
    static const long ID_CHECKBOX8;
    static const long ID_STATICTEXT1;
    static const long ID_CHOICE2;
    static const long ID_CHECKBOX2;
    static const long ID_COMBOBOX1;
    static const long ID_CHECKBOX1;
    static const long ID_CHOICE3;
    static const long ID_CHECKBOX7;
    static const long ID_SPINCTRL1;
    static const long ID_CHECKBOX6;
    static const long ID_TEXTCTRL1;
    static const long ID_CHECKBOX3;
    static const long ID_RADIOBUTTON1;
    static const long ID_RADIOBUTTON2;
    static const long ID_RADIOBUTTON3;
    static const long ID_CHECKBOX4;
    static const long ID_RADIOBUTTON4;
    static const long ID_RADIOBUTTON5;
    static const long ID_RADIOBUTTON6;
    static const long ID_CHECKBOX5;
    static const long ID_RADIOBUTTON7;
    static const long ID_RADIOBUTTON8;
    static const long ID_LISTBOX1;
    static const long ID_BUTTON4;
    static const long ID_BUTTON5;
    static const long ID_BUTTON6;
    static const long ID_BUTTON8;
    static const long ID_BUTTON7;
    static const long ID_TEXTCTRL2;

  protected:

    //(*Handlers(wxsFontEditorDlg)
    void OnButton1Click( wxCommandEvent& event );
    void OnUpdateContent( wxCommandEvent& event );
    void OnButton2Click( wxCommandEvent& event );
    void OnButton1Click1( wxCommandEvent& event );
    void OnFaceAddClick( wxCommandEvent& event );
    void OnFaceDelClick( wxCommandEvent& event );
    void OnFaceEditClick( wxCommandEvent& event );
    void OnFaceUpClick( wxCommandEvent& event );
    void OnFaceDownClick( wxCommandEvent& event );
    void OnUpdatePreview( wxCommandEvent& event );
    void OnSizeValChange( wxSpinEvent& event );
    void OnBaseFontUseChange( wxCommandEvent& event );

    //(*Declarations(wxsFontEditorDlg)
    wxStaticBoxSizer* StaticBoxSizer2;
    wxChoice* BaseFontVal;
    wxRadioButton* WeightNorm;
    wxRadioButton* WeightBold;
    wxCheckBox* UnderUse;
    wxCheckBox* StyleUse;
    wxRadioButton* UnderYes;
    wxRadioButton* StyleSlant;
    wxButton* FaceUp;
    wxStaticBoxSizer* StaticBoxSizer4;
    wxTextCtrl* TestArea;
    wxSpinCtrl* SizeVal;
    wxRadioButton* StyleNorm;
    wxCheckBox* BaseFontUse;
    wxChoice* FontType;
    wxCheckBox* WeightUse;
    wxButton* FaceAdd;
    wxStaticText* BaseFontTxt;
    wxFlexGridSizer* FlexGridSizer2;
    wxChoice* EncodVal;
    wxBoxSizer* BoxSizer2;
    wxTextCtrl* RelSizeVal;
    wxCheckBox* FamUse;
    wxRadioButton* WeightLight;
    wxStaticBoxSizer* StaticBoxSizer3;
    wxStaticBoxSizer* StaticBoxSizer6;
    wxCheckBox* SizeUse;
    wxButton* FaceDown;
    wxCheckBox* EncodUse;
    wxRadioButton* StyleItal;
    wxButton* FaceDel;
    wxListBox* FaceList;
    wxComboBox* FamVal;
    wxStaticBoxSizer* StaticBoxSizer1;
    wxCheckBox* RelSizeUse;
    wxBoxSizer* BoxSizer3;
    wxStaticBoxSizer* StaticBoxSizer5;
    wxRadioButton* UnderNo;
    wxButton* FaceEdit;
    wxBoxSizer* BaseFontSizer;

  private:

    void UpdateContent();
    void UpdatePreview();
    void ReadData( wxsFontData& _Data );
    void StoreData( wxsFontData& _Data );

    wxsFontData& Data;
    wxArrayString Encodings;
    bool Initialized;

    DECLARE_EVENT_TABLE()
};

#endif
